/**
 * 第一场景 ScreenOne
 */
class ScreenOne extends egret.DisplayObjectContainer {
    /** 加载背景 */
    private bg_png = Main.createBitmapByName("bg_1_png");
    /** 加载栏杆 */
    private langan_png = Main.createBitmapByName("langan_png");
    /** 角色动画定时器 */
    private role_timer = new egret.Timer(1000 / 4, 23);
    /** 创建提示点 */
    private tipPoint = Main.createTipPoint();

    public constructor() {
        super();
        this.once(egret.Event.ADDED_TO_STAGE, this.init, this);
    }

    private init() {
        /** 载入资源 */
        Main.createScale(this.bg_png, this);
        /** 道具: 剪刀设置 */
        this.cutSetting();
        /** 道具: 草设置 */
        this.caoSetting();
        /** 道具: 角色设置 */
        this.roleSetting();
        /** 道具: 栏杆设置 */
        Main.createScale(this.langan_png, this);
        /** 道具: 操作提示点设置 */
        this.tipPointSetting();
    }
    /** 道具: 剪刀设置 */
    private cutSetting() {
        /** 加载剪刀 */
        const cut_png: egret.Bitmap = Main.createBitmapByName("cut1_png");
        this.addChild(cut_png);
        cut_png.scaleX = .5 * .2;
        cut_png.scaleY = .5 * .2;
        cut_png.rotation = 45;
        cut_png.x = 462;
        cut_png.y = 384;
        Main.anchorCenter(cut_png);
        // Main.itemAniamtion(cut_png);
        cut_png.touchEnabled = true;
        cut_png.once(egret.TouchEvent.TOUCH_TAP, cutTouchHandler, this);
        /** 剪刀点击事件处理 */
        function cutTouchHandler() {
            this.removeChild(cut_png);
            this.addChild(this.tipPoint);
            this.dispatchEventWith("getItem", false, { item: cut_png, tipPoint: this.tipPoint }, false);
        }
    }
    /** 道具: 草设置 */
    private caoSetting() {
        /** 加载草 */
        const cao_png = Main.createBitmapByName("cao_png");
        Main.createScale(cao_png, this);
        cao_png.scaleX = .94;
        cao_png.scaleY = .94;
        cao_png.x = 83;
        cao_png.y = 380;
    }
    /** 道具: 角色设置 */
    private roleSetting() {
        /** 加载角色 */
        const role_png = Main.createBitmapByName("0_png");
        /** 角色动画帧计数器 */
        let num = 0;
        /** 以公共缩放方法添加角色 */
        Main.createScale(role_png, this);
        /** 播放角色动画 */
        this.role_timer.addEventListener(egret.TimerEvent.TIMER, roleTimerHandler, this);
        /** 角色动画播放完毕 */
        this.role_timer.addEventListener(egret.TimerEvent.TIMER_COMPLETE, roleTimerCompleteHandler, this);
        /** 播放角色动画事件处理 */
        function roleTimerHandler() {
            num++;
            role_png.texture = RES.getRes(`${num}_png`);
        }
        /** 角色动画播放完毕事件处理 */
        function roleTimerCompleteHandler() {
            egret.Tween.get(this).wait(3000).call(() => {
                ScreenLayer.createAlert(this);
            })
        }
    }
    /** 道具: 操作提示点设置 */
    private tipPointSetting() {
        this.tipPoint.x = 640;
        this.tipPoint.y = 450;
    }
    /** 启动场景 */
    public run() {
        console.log("场景1 run");
        this.removeChild(this.tipPoint);
        this.role_timer.start();
    }
}